﻿/// <reference path="new_common_scripts.js" />
/// <reference path="new_XrmPage_vsdoc.js" />
/// <reference path="new_jquery.js" />
/// <reference path="new_json.js" />
/// <reference path="new_XrmServiceToolkit.js" />

var lead = {
    callToclientStarted: false,

    addOnChangeFunctions: function () {
        Xrm.Page.getAttribute("new_publishabook").addOnChange(lead.new_publishabook_onchange);
        Xrm.Page.getAttribute("new_youarewriting").addOnChange(lead.new_youarewriting_onchange);
        Xrm.Page.getAttribute("new_publishbookfor").addOnChange(lead.new_publishbookfor_onchange);
        Xrm.Page.getAttribute("new_callresult").addOnChange(lead.new_callresult_onchange);
    },

    hideFieldsAndSections: function () {
        $("option[value='100000002']", "#new_callresult_i").removeAttr("disabled");
        common.hideSection("Summary_section_7");
        common.setDisabledControl("new_callresult", true);
        if (common.getAttrKey("new_lastcall_datetime") == null)
            common.hideSection("Summary_section_4");
        if (common.getAttrKey("new_publishabook") == null) {
            common.hideSection("RELATED_TAB");
            common.hideSection("Summary_section_6");
        }
    },

    onLoad: function (onload_flag) {
        lead.addOnChangeFunctions();
        Xrm.Page.data.entity.addOnSave(function () {
            if ($("#callToClient") != null && $("#callToClient").length > 0)
                $("#callToClient").remove();

            if ($("#new_callresult_1") != null && $("#new_callresult_1").length > 0)
                $("#new_callresult_1").remove();

            if ($("#new_callresult_2") != null && $("#new_callresult_2").length > 0)
                $("#new_callresult_2").remove();

            if ($("#fullname1_c_text") != null && $("#fullname1_c_text").length > 0)
                $("#fullname1_c_text").remove();

            if ($("#mobilephone1_c_text") != null && $("#mobilephone1_c_text").length > 0)
                $("#mobilephone1_c_text").remove();

            if ($("#address1_city_c_text") != null && $("#address1_city_c_text").length > 0)
                $("#address1_city_c_text").remove();
        });

        lead.hideFieldsAndSections();

        lead.new_callresult_onchange(onload_flag);
        lead.new_publishabook_onchange();
        lead.new_youarewriting_onchange();
        lead.new_publishbookfor_onchange();
    },

    new_publishabook_onchange: function () {
        var new_publishabook = common.getAttrKey("new_publishabook");

        if (new_publishabook == 100000001) {
            common.showControl("new_publishbookfor", true);
            common.showControl("new_publishbookfor_other", false);
        }
        else {
            common.hideControl("new_publishbookfor", false);
            common.hideControl("new_publishbookfor_other", false);
        }

        common.setDisabledControl("new_publishbookfor", (new_publishabook != 100000001));
        common.setRequiredControl("new_publishbookfor", (new_publishabook == 100000001));
        if (new_publishabook != 100000001)
            common.setAttrValue("new_publishbookfor", null);

        common.setDisabledControl("new_publishabook_other", (new_publishabook != 100000003));
        common.setRequiredControl("new_publishabook_other", (new_publishabook == 100000003));
        if (new_publishabook != 100000003)
            common.setAttrValue("new_publishabook_other", null);
    },

    new_youarewriting_onchange: function () {
        var new_youarewriting = common.getAttrKey("new_youarewriting");

        common.setDisabledControl("new_youarewriting_other", (new_youarewriting != 100000003));
        common.setRequiredControl("new_youarewriting_other", (new_youarewriting == 100000003));
        if (new_youarewriting != 100000003)
            common.setAttrValue("new_youarewriting_other", null);
    },

    new_publishbookfor_onchange: function () {
        var new_publishbookfor = common.getAttrKey("new_publishbookfor");

        common.setDisabledControl("new_publishbookfor_other", (new_publishbookfor != 100000003));
        common.setRequiredControl("new_publishbookfor_other", (new_publishbookfor == 100000003));
        if (new_publishbookfor != 100000003)
            common.setAttrValue("new_publishbookfor_other", null);
    },

    new_callresult_onchange: function (onload_flag) {
        var new_callresult = common.getAttrKey("new_callresult");

        if ($("#new_callresult_1").length > 0)
            $("#new_callresult_1").remove();

        if ($("#new_callresult_2").length > 0)
            $("#new_callresult_2").remove();

        if ($("#fullname1_c_text").length > 0)
            $("#fullname1_c_text").remove();

        if ($("#mobilephone1_c_text").length > 0)
            $("#mobilephone1_c_text").remove();

        if ($("#address1_city_c_text").length > 0)
            $("#address1_city_c_text").remove();

        switch (new_callresult) {
            case 100000001: // Дозвонились
                common.setDisabledControl("new_nextcall_datetime", false);
                if (onload_flag != 1)
                    common.setAttrValue("new_nextcall_datetime", null);
                common.showControl("new_nextcall_datetime", true);
                common.showSection("RELATED_TAB");
                common.showSection("Summary_section_6");

                common.setRequiredControl("new_publishabook", true);
                common.setRequiredControl("new_youarewriting", true);

                common.setRequiredControl("new_distributingbookin_bookshop", true);
                common.setRequiredControl("new_distributingbookin_online_paper", true);
                common.setRequiredControl("new_distributingbookin_digital", true);
                common.setRequiredControl("new_distributingbookin_audio", true);

                common.setDisabledControl("new_publishabook", false);
                common.setDisabledControl("new_youarewriting", false);

                common.setDisabledControl("new_distributingbookin_bookshop", false);
                common.setDisabledControl("new_distributingbookin_online_paper", false);
                common.setDisabledControl("new_distributingbookin_digital", false);
                common.setDisabledControl("new_distributingbookin_audio", false);

                if (onload_flag != 1) {
                    var _text = "Спасибо! Сейчас нам достаточно информации. Я передам ее нашему главному редактору, который специализируется на вашем жанре. Когда Вам будет удобно, чтобы Вам перезвонили?";
                    $('<tr id="new_callresult_1" height="55"><td colspan="2"><div>' + _text + '</div></td></tr>').insertBefore($("#new_nextcall_datetime_c").parent());

                    var _text_fio = "Вас зовут (ЗАЧИТАТЬ)";
                    $('<tr id="fullname1_c_text" height="55"><td colspan="2"><div>' + _text_fio + '</div></td></tr>').insertBefore($("#fullname1_c").parent());

                    var _text_mobile = "Уточните, пожалуйста, с Вами можно будет связаться по этому номеру (ЗАЧИТАТЬ)";
                    $('<tr id="mobilephone1_c_text" height="55"><td colspan="2"><div>' + _text_mobile + '</div></td></tr>').insertBefore($("#mobilephone1_c").parent());

                    var _text_city = common.getAttrKey("address1_city") == null || common.getAttrKey("address1_city") == '' ? "Скажите, пожалуйста, в каком городе Вы проживаете?" : "Вы проживаете в (ЗАЧИТАТЬ)";
                    $('<tr id="address1_city_c_text" height="55"><td colspan="2"><div>' + _text_city + '</div></td></tr>').insertBefore($("#address1_city_c").parent());

                    common.showSection("Summary_section_7");
                }
                break;
            case 100000002: // Не удалось дозвониться
                common.setDisabledControl("new_nextcall_datetime", true);
                common.showControl("new_nextcall_datetime", false);
                if (onload_flag != 1)
                    common.setAttrValue("new_nextcall_datetime", (new Date()).setHours((new Date()).getHours() + 2));

                lead.hideScriptSection(onload_flag);
                break;
            case 100000003: // Попросили перезвонить
                common.setDisabledControl("new_nextcall_datetime", false);
                common.showControl("new_nextcall_datetime", true);
                if (onload_flag != 1)
                    common.setAttrValue("new_nextcall_datetime", (new Date()).setHours((new Date()).getHours() + 2));

                lead.hideScriptSection(onload_flag);

                if (onload_flag != 1) {
                    var _text = "Спасибо! Когда вам будет удобно, чтобы вас набрали?";
                    $('<tr id="new_callresult_2" height="55"><td colspan="2"><div>' + _text + '</div></td></tr>').insertBefore($("#new_nextcall_datetime_c").parent());
                    common.showSection("Summary_section_7");
                }
                break;
            case 100000004: // Отказались общаться
                common.setDisabledControl("new_nextcall_datetime", true);
                common.hideControl("new_nextcall_datetime", false);

                lead.hideScriptSection(onload_flag);
                break;
            case 100000005: // Не удалось дозвониться 2-ой раз
                common.setDisabledControl("new_nextcall_datetime", true);
                common.hideControl("new_nextcall_datetime", false);

                lead.hideScriptSection(onload_flag);
                break;
            default:
                common.setDisabledControl("new_nextcall_datetime", true);
                common.hideControl("new_nextcall_datetime", false);

                lead.hideScriptSection(onload_flag);
                break;
        }
    },

    hideScriptSection: function (onload_flag) {
        common.hideSection("RELATED_TAB");
        common.hideSection("Summary_section_6");
        common.hideSection("Summary_section_7");

        common.setRequiredControl("new_publishabook", false);
        common.setRequiredControl("new_youarewriting", false);

        common.setRequiredControl("new_distributingbookin_bookshop", false);
        common.setRequiredControl("new_distributingbookin_online_paper", false);
        common.setRequiredControl("new_distributingbookin_digital", false);
        common.setRequiredControl("new_distributingbookin_audio", false);


        common.setDisabledControl("new_publishabook", true);
        common.setDisabledControl("new_youarewriting", true);

        common.setDisabledControl("new_distributingbookin_bookshop", true);
        common.setDisabledControl("new_distributingbookin_online_paper", true);
        common.setDisabledControl("new_distributingbookin_digital", true);
        common.setDisabledControl("new_distributingbookin_audio", true);

        if (onload_flag != 1) {
            common.setAttrValue("new_publishabook", null);
            common.setAttrValue("new_youarewriting", null);

            common.setAttrValue("new_distributingbookin_bookshop", null);
            common.setAttrValue("new_distributingbookin_online_paper", null);
            common.setAttrValue("new_distributingbookin_digital", null);
            common.setAttrValue("new_distributingbookin_audio", null);
        }

    },

    callingToClient_enabled: function () {
        var userid = Xrm.Page.context.getUserId();
        var ownerid = common.getAttrKey("ownerid");

        return (Xrm.Page.ui.getFormType() == 2 && userid == ownerid);
    },

    callingToClient: function () {

        var fullname = common.getAttrValue("fullname");
        var ownerid = common.getAttrValue("ownerid");

        if ($("#callToClient").length > 0)
            $("#callToClient").remove();

        //        var _text = (fullname + ", здравствуйте!<br /><br />" +
        //            "Меня зовут " + ownerid + ", я старший консультант издательства «РИПОЛ», проект «ХХХХ». <br />" +
        //            "Наш центр поддержки авторов работает круглосуточно, мы звоним Вам по Вашей заявке, оставленной на нашем сайте.<br /><br />");
        var _text = ("Здравствуйте, меня зовут <<ИМЯ АГЕНТА>>, издательство Рипол.<br />" +
            "Мы звоним по Вашей заявке, оставленной на нашем сайте. Могу я поговорить с <<ФИО>>?<br /><br />");
        var _html = '<tr id="callToClient" height="55"><td colspan="2"><div>' + _text + '</div></td></tr>';

        $(_html).insertAfter($("#new_lastcall_datetime_c").parent());

        common.showSection("Summary_section_4");
        common.setAttrValue("new_lastcall_datetime", new Date());

        if (common.getAttrKey("new_callresult") == 100000002)
            $("option[value='100000002']", "#new_callresult_i").attr("disabled", "disabled");

        common.setDisabledControl("new_callresult", false);
        common.setAttrValue("new_callresult", null);
        common.showSection("Summary_section_4");

        lead.callToclientStarted = true;
        Xrm.Page.ui.refreshRibbon();

        var control = Xrm.Page.ui.controls.get("new_callresult");
        control.setFocus();
    },

    endCallToclient_enabled: function () {
        return false == true;
        //        return lead.callToclientStarted == true;
    },

    endCallToclient: function () {

        if (Xrm.Page.data.getIsValid() == false) {
            alert("На форме не заполнены все обязательные поля!");
            return;
        }

        var new_callresult = common.getAttrKey("new_callresult");
        var fullname = common.getAttrValue("fullname");
        var mobilephone = common.getAttrValue("mobilephone");
        var new_nextcall_datetime = new Date(); //common.getAttrValue("new_nextcall_datetime");

        switch (new_callresult) {
            case 100000001: // Дозвонились
                if (confirm("Спасибо! Сейчас нам достаточно информации. Я передам ее нашему главному редактору, который специализируется на вашем жанре. Когда вам будет удобно, чтобы вас набрали?\n"
                + "\n\t• уточнить дату и время следующего контакта: " + new_nextcall_datetime.getDate() + "-" + (new_nextcall_datetime.getMonth() + 1) + "-" + new_nextcall_datetime.getYear() + " " + new_nextcall_datetime.getHours() + ":" + new_nextcall_datetime.getMinutes() +
                +"\n\t• уточнить телефонный номер: " + mobilephone
                + "\n\t• уточнить ФИО: " + fullname
                // + "\n\t• (уточнить город проживания)"
                + "\n\n\t\t\t\t\tВсе верно?")) {
                    Xrm.Page.data.save();


                    //                    qualify();
                }
                break;
            case 100000002: // Не удалось дозвониться
            case 100000003: // Попросили перезвонить
                Xrm.Page.data.save();
            case 100000004: // Отказались общаться
            case 100000005: // Не удалось дозвониться 2-ой раз
            default:
                break;
        }
    }
}
/*
function qualifyLeadRequest() {

alert("1");

var requestMain = ""
requestMain += "\n<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">";
requestMain += "\n  <s:Body>";
requestMain += "\n    <Execute xmlns=\"http://schemas.microsoft.com/xrm/2011/Contracts/Services\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">";
requestMain += "\n      <request i:type=\"b:QualifyLeadRequest\" xmlns:a=\"http://schemas.microsoft.com/xrm/2011/Contracts\" xmlns:b=\"http://schemas.microsoft.com/crm/2011/Contracts\">";
requestMain += "\n        <a:Parameters xmlns:c=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\">";
requestMain += "\n          <a:KeyValuePairOfstringanyType>"
requestMain += "\n            <c:key>LeadId</c:key>"
requestMain += "\n            <c:value i:type=\"a:EntityReference\">"
requestMain += "\n              <a:Id>+" + Xrm.Page.data.entity.getId() + "</a:Id>"
requestMain += "\n              <a:LogicalName>lead</a:LogicalName>"
requestMain += "\n              <a:Name i:nil=\"true\" />"
requestMain += "\n            </c:value>"
requestMain += "\n          </a:KeyValuePairOfstringanyType>"
requestMain += "\n          <a:KeyValuePairOfstringanyType>"
requestMain += "\n            <c:key>CreateContact</c:key>"
requestMain += "\n            <c:value i:type=\"d:boolean\" xmlns:d=\"http://www.w3.org/2001/XMLSchema\">true</c:value>"
requestMain += "\n          </a:KeyValuePairOfstringanyType>"
requestMain += "\n          <a:KeyValuePairOfstringanyType>"
requestMain += "\n            <c:key>CreateOpportunity</c:key>"
requestMain += "\n            <c:value i:type=\"d:boolean\" xmlns:d=\"http://www.w3.org/2001/XMLSchema\">true</c:value>"
requestMain += "\n          </a:KeyValuePairOfstringanyType>"
requestMain += "\n          <a:KeyValuePairOfstringanyType>"
requestMain += "\n            <c:key>Status</c:key>"
requestMain += "\n            <c:value i:type=\"a:OptionSetValue\">"
requestMain += "\n              <a:Value>3</a:Value>"
requestMain += "\n            </c:value>"
requestMain += "\n          </a:KeyValuePairOfstringanyType>"
requestMain += "\n        </a:Parameters>";
requestMain += "\n        <a:RequestId i:nil=\"true\" />";
requestMain += "\n        <a:RequestName>QualifyLeadRequest</a:RequestName>";
requestMain += "\n      </request>";
requestMain += "\n    </Execute>";
requestMain += "\n  </s:Body>";
requestMain += "\n</s:Envelope>";

XrmServiceToolkit.Soap.Execute(requestMain);
}

function qualify() {
qualifyLeadRequest();
window.location.reload(true);
}

*/